home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-04-04 | 10.2 KB | 370 lines |
- 10 CLEAR:KEY OFF:WIDTH 80:SCREEN 0,0,0:COLOR 3,0,0:LOCATE 1,1,0
- 110 FOR A=1 TO 9:ON KEY(A) GOSUB 410:KEY(A) ON:NEXT
- 120 KEY(10) ON:DEF SEG:POKE 106,0:ON KEY(10) GOSUB 3580:XLIN=1:XPOS=1
- 130 DEFINT A-C:DEFSTR P,Z:DIM A(20),B(40),PV(40),PZ(81),VL(81),TBL(1,50),PL(1),T(1),MATCH(1),KEEP(1,21)
- 140 PTR="$$##,###.##"
- 150 GOSUB 1140
- 160 GOSUB 420
- 170 COLOR 3,0:GOSUB 630
- 180 IF FLAG=2 THEN GOSUB 1750:GOTO 1360
- 190 IF FLAG=1 THEN GOTO 1940
- 200 GOTO 170
- 210 FOR A=1 TO 20
- 220 RANDOMIZE(VAL(RIGHT$(TIME$,2)))
- 230 A(A)=(RND*80):IF A(A)=0 THEN 230
- 240 FOR B=1 TO A-1
- 250 IF A(B)=A(A) THEN B=A:A=A-1
- 260 NEXT B
- 270 SC=FIX(RND*89)+10
- 280 NEXT A
- 290 B(0)=1
- 300 FOR A=1 TO 20
- 310 C=RND*40
- 320 RANDOMIZE(VAL(RIGHT$(TIME$,2)))
- 330 IF B(C)=0 THEN B(C)=A(A) ELSE 310
- 340 C=RND*40
- 350 IF B(C)=0 THEN B(C)=A(A) ELSE 340
- 360 NEXT A
- 370 FOR A=1 TO 40:READ PV(A):NEXT
- 380 FOR A=1 TO 80
- 390 READ PZ(A),VL(A)
- 400 NEXT A
- 410 RETURN
- 420 CLS:COLOR 4,0:LOCATE 1,3:PRINT"KEY"
- 430 FOR A=4 TO 74 STEP 15
- 440 LOCATE 1,A:PRINT STRING$(14,"THEN")"<0xCB!>"
- 450 NEXT A:LOCATE 1,78:PRINT"CLOSE"
- 460 FOR A=2 TO 15 STEP 2
- 470 FOR B=3 TO 74 STEP 15
- 480 LOCATE A,B:PRINT"OPEN";
- 490 NEXT B:LOCATE A,78:PRINT"OPEN": LOCATE A+1,3:PRINT"TO"STRING$(15,"THEN")
- 500 FOR B=18 TO 74 STEP 15
- 510 LOCATE A+1,B:PRINT"TAB("STRING$(15,"THEN")
- 520 NEXT B:LOCATE A+1,78:PRINT"RANDOMIZE"
- 530 NEXT A
- 540 FOR B=3 TO 74 STEP 15
- 550 LOCATE 16,B:PRINT"OPEN";
- 560 NEXT B:LOCATE 16,78:PRINT"OPEN": LOCATE A+1,3:PRINT"TO"STRING$(15,"THEN")
- 570 LOCATE 17,3:PRINT"SCREEN"
- 580 FOR A=4 TO 74 STEP 15
- 590 LOCATE 17,A:PRINT STRING$(14,"THEN")"LOCATE"
- 600 NEXT A:LOCATE 17,78:PRINT"LOAD"
- 610 LOCATE 25,25:COLOR 0,7:PRINT" Strike <F10> To Leave This Game ";:COLOR 3,0
- 620 RETURN
- 630 C=0
- 640 FOR A=2 TO 17 STEP 2
- 650 FOR B=2 TO 74 STEP 15
- 660 C=C+1:IF B(C)=0 THEN LOCATE A,B+2:PRINT SPC(14):GOTO 680
- 670 LOCATE A,B+2:COLOR 0,7:PRINT" "PV(C)" ";:COLOR 3,0
- 680 NEXT B
- 690 NEXT A
- 700 FOR X=20 TO 23:LOCATE X,1:PRINT SPC(79);:NEXT
- 710 HOLD=0
- 720 COLOR 15,0:LOCATE 20,23:PRINT PL(T)", What Is Your FIRST Choice? ";
- 730 GOSUB 920:IF A=0 THEN GOSUB 990:GOSUB 1110 ELSE 720
- 740 HOLD=GS
- 750 LOCATE 20,1:PRINT SPC(79)
- 760 COLOR 15,0:LOCATE 20,23:PRINT PL(T)", What Is Your SECOND Choice? ";
- 770 GOSUB 920:IF A=0 THEN GOSUB 990 ELSE 760
- 780 IF VL(B(HOLD))=-3 THEN SWAP HOLD,GS:GOTO 830
- 790 IF VL(B(GS))=-3 THEN 830
- 800 IF B(GS)=B(HOLD) THEN 830
- 810 LOCATE 20,23:PRINT" SORRY "PL(T)", But No Match ";
- 820 FOR X=1 TO 1500:NEXT:T=T(T):RETURN
- 830 IF VL(B(HOLD))=-2 THEN 1540
- 840 IF VL(B(HOLD))=-1 THEN 1420
- 850 TBL(T,Q(T))=B(HOLD)
- 860 B(GS)=0:B(HOLD)=0
- 870 LOCATE 20,22:PRINT" ALLRIGHT, A Match !!";:PRINT SPC(25)
- 880 FOR A=1 TO 6:SOUND 2000,1:SOUND 1000,1:NEXT A
- 890 D=0:Q(T)=Q(T)+1
- 900 FOR A=0 TO Q(T):D=D+VL(TBL(T,A)):NEXT A
- 910 GOSUB 3320:GOTO 2470
- 920 GS=0
- 930 GOSUB 3380
- 940 FOR A=1 TO 40:IF P1=PV(A) THEN GS=A:A=0 ELSE NEXT:GOTO 970
- 950 IF GS=HOLD THEN 970
- 960 IF B(GS)<>0 THEN RETURN
- 970 LOCATE 20,23:PRINT"Invalid Choice. Please Try Again "PL(T);:PRINT SPC(4)
- 980 GOSUB 1850:LOCATE 20,10:PRINT SPC(60):RETURN
- 990 RW=(INT((GS-1)/5)+1)*2
- 1000 XX=36
- 1010 IF GS<36 THEN XX=31
- 1020 IF GS<31 THEN XX=26
- 1030 IF GS<26 THEN XX=21
- 1040 IF GS<21 THEN XX=16
- 1050 IF GS<16 THEN XX=11
- 1060 IF GS<11 THEN XX=6
- 1070 IF GS<6 THEN XX=1
- 1080 COL=(GS-XX)*15
- 1090 COLOR 11,0:LOCATE RW,COL+4:PRINT USING "&";PZ(B(GS));:COLOR 3,0
- 1100 RETURN
- 1110 IF VL(B(GS))<0 THEN 1130
- 1120 LOCATE 22,25:PRINT" Worth ";:PRINT USING PTR;VL(B(GS))
- 1130 RETURN
- 1140 CLS:COLOR 15,0:LOCATE 2,27:PRINT" M A T C H
- 1150 LOCATE 6,23:PRINT"Would You Like Instructions? <Y/N>":COLOR 3,0
- 1160 GOSUB 1270:IF Z="Y" OR Z="y" THEN GOSUB 2030:GOTO 1180
- 1170 IF Z<>"n" AND Z<>"N" THEN 1160
- 1180 LOCATE 10,25:PRINT"And Then Strike Enter Key"
- 1185 LOCATE 6,20:PRINT"Player #1, Please Enter Your First Name ";
- 1190 GOSUB 3670:PL(1)=ZA
- 1200 LOCATE 8,20:PRINT"Player #2, Please Enter Your First Name ";
- 1210 GOSUB 3670:PL(0)=ZA
- 1220 T(0)=1:T(1)=0
- 1230 LOCATE 10,20:PRINT"One Moment While I Generate A Game Board
- 1240 GOSUB 210
- 1250 RETURN
- 1260 LOCATE 25,27:COLOR 14,0:PRINT"Strike Any Key To Continue";:COLOR 3,0
- 1270 Z=INKEY$:IF Z="" THEN 1270 ELSE RETURN
- 1280 FOR A=1 TO 39
- 1290 IF B(A)=0 THEN 1330
- 1300 FOR B=A+1 TO 40
- 1310 IF B(A)=B(B) THEN 1350
- 1320 NEXT B
- 1330 NEXT A
- 1340 FLAG=1
- 1350 RETURN
- 1360 CLS:LOCATE 1,25:PRINT PL(T)" These Are Your Prizes
- 1370 GOSUB 1640
- 1380 LOCATE C+1,43:PRINT STRING$(12,"THEN")
- 1390 LOCATE C+2,20:PRINT"Grand Total Of":LOCATE C+2,44:PRINT USING PTR;D
- 1400 LOCATE 23,25:PRINT"Strike Any Key To Continue";
- 1410 GOSUB 1270:GOTO 1860
- 1420 B(GS)=0:B(HOLD)=0
- 1430 IF Q(T(T))=0 THEN LOCATE 23,23:PRINT PL(T(T))" Has No Prizes To Take ": GOTO 900
- 1440 GOSUB 1850:CLS
- 1450 T=T(T):GOSUB 1640:T=T(T)
- 1460 LOCATE 21,23:PRINT" Which Price Would You Like
- 1470 LOCATE 22,35:PRINT"To Take, "PL(T);
- 1480 GOSUB 3510:B=VAL(Z)
- 1490 IF B<0 OR B>Q(T(T))-1 THEN LOCATE 23,30:PRINT"Please Try Again "PL(T)" ":FOR X=1 TO 2000:NEXT:LOCATE 23,10:PRINT SPC(60):GOTO 1480
- 1500 LOCATE 22,1:PRINT SPC(79);:LOCATE 24,1:PRINT SPC(79);
- 1510 TBL(T,Q(T))=TBL(T(T),B)
- 1520 TBL(T(T),B)=0:Q(T)=Q(T)+1
- 1530 GOTO 1620
- 1540 B(GS)=0:B(HOLD)=0
- 1550 IF Q(T)=0 THEN LOCATE 23,32:PRINT PL(T)" Has No Prizes To Lose ":GOTO 900
- 1560 GOSUB 1850:CLS:GOSUB 1640
- 1570 LOCATE 21,30:PRINT"Which Prize Would You Like
- 1580 LOCATE 22,35:PRINT"To Lose, "PL(T);
- 1590 GOSUB 3510:B=VAL(Z)
- 1600 IF B<0 OR B>Q(T)-1 THEN LOCATE 22,23:PRINT" Please Try Again "PL(T)":FOR X=1 TO 2000:NEXT:LOCATE 22,10:PRINT SPC(60):GOTO 1520
- 1610 TBL(T(T),Q(T(T)))=TBL(T,B):TBL(T,B)=0:Q(T(T))=Q(T(T))+1
- 1620 B(GS)=0:B(HOLD)=0
- 1630 GOSUB 3320:GOTO 420
- 1640 LOCATE 2,20:PRINT"Prize Value
- 1650 LOCATE 3,20:PRINT STRING$(35,"THEN"):C=4:D=0
- 1660 FOR A=0 TO Q(T)-1
- 1670 C=C+1
- 1680 A$=SPACE$(18)
- 1690 LSET A$=PZ(TBL(T,A))
- 1700 LOCATE C,23:PRINT A;:PRINT USING "&";A$;
- 1710 PRINT USING PTR;VL(TBL(T,A))
- 1720 D=D+VL(TBL(T,A))
- 1730 NEXT A
- 1740 RETURN
- 1750 C=0
- 1760 FOR A=2 TO 17 STEP 2
- 1770 FOR B=0 TO 72 STEP 15
- 1780 C=C+1:IF B(C)=0 THEN 1800
- 1790 LOCATE A,B+4:PRINT USING "&";PZ(B(C))
- 1800 NEXT B
- 1810 NEXT A
- 1820 LOCATE 23,1:PRINT SPC(79);
- 1830 LOCATE 23,24:PRINT"Strike Any Key To See Your Prizes"
- 1840 GOTO 1270
- 1850 FOR A=1 TO 1500:NEXT A:RETURN
- 1860 GOSUB 1850:CLS
- 1870 MATCH(T)=MATCH(T)+1
- 1880 LOCATE 1,35:PRINT"The Score Is
- 1890 LOCATE 2,25:PRINT PL(0)" Has Won "MATCH(0)
- 1900 LOCATE 3,25:PRINT PL(1)" Has Won "MATCH(1)
- 1910 LOCATE 8,35:COLOR 14,0
- 1920 IF MATCH(0)=2 THEN PRINT PL(0)" Wins !!!!":GOTO 2240
- 1930 IF MATCH(1)=2 THEN PRINT PL(1)" Wins !!!!":GOTO 2240
- 1940 FOR A=1 TO 40:B(A)=0:NEXT
- 1950 FOR A=0 TO Q(T)-1
- 1960 KEEP(T,A+1)=TBL(T,A):TBL(T,A)=0
- 1970 NEXT:KEEP(T,0)=Q(T)-1
- 1980 Q(T)=0:Q(T(T))=0
- 1990 TBL(T(T),0)=0
- 2000 FLAG=0
- 2010 LOCATE 23,20:PRINT"One Moment While I Generate A New Game Board
- 2020 RESTORE:GOSUB 210:GOSUB 1850:GOTO 160
- 2030 CLS
- 2040 FOR A=1 TO 23
- 2050 LOCATE A,1:PRINT"CALL";:LOCATE A,80:PRINT"CALL";
- 2060 NEXT
- 2070 LOCATE 1,1:PRINT"ERR"STRING$(78,"THEN")"OPTION";
- 2080 LOCATE 23,1:PRINT"ERL"STRING$(78,"THEN")"SAVE";
- 2090 LOCATE 3,35:COLOR 15,0:PRINT"M A T C H":COLOR 3,0
- 2100 LOCATE 5,19:PRINT"In this game, you will try to match prizes
- 2110 LOCATE 6,19:PRINT"on the game board before your opponent does.
- 2120 LOCATE 8,19:PRINT"When you match a prize, you will be asked to
- 2130 LOCATE 9,19:PRINT"guess a number between 10 AND 99.
- 2140 LOCATE 10,19:PRINT"If you guess the secret number then You will
- 2150 LOCATE 11,19:PRINT"win the match.
- 2160 LOCATE 12,19:PRINT"I will tell you if you are to HIGH or to LOW.
- 2170 LOCATE 13,19:PRINT"You must win 2 matches to win the game.
- 2180 LOCATE 15,19:PRINT"If you do not guess the secret number before
- 2190 LOCATE 16,19:PRINT"all possible matches have been made then
- 2200 LOCATE 17,19:PRINT"the match continues with a new game board
- 2210 LOCATE 18,19:PRINT"and a new secret number.
- 2220 LOCATE 20,35:PRINT"GOOD LUCK !!!
- 2230 GOSUB 1260:CLS:RETURN
- 2240 GOSUB 2470:CLS:COLOR 3,0:GOSUB 2360
- 2250 FOR A=0 TO KEEP(T,0)
- 2260 TBL(T,A)=KEEP(T,A+1)
- 2270 NEXT
- 2280 Q(T)=KEEP(T,0)+1
- 2290 GOSUB 2380
- 2300 LOCATE C+2,48:PRINT STRING$(12,"THEN")
- 2310 LOCATE C+3,25:PRINT"Grand Total Of":LOCATE C+3,48:PRINT USING PTR;D
- 2320 LOCATE 23,25:PRINT"Would You Like To Play Again? <Y/N>";
- 2330 GOSUB 1270:IF Z="Y" OR Z="y" THEN RUN ELSE IF Z<>"N" AND Z<>"n" THEN 2330
- 2340 CLS:LOCATE 12,25:PRINT"Thank You For Playing Match
- 2350 RUN"menu
- 2360 LOCATE 2,25:PRINT"Prize Value
- 2370 LOCATE 3,25:PRINT STRING$(35,"THEN"):C=4:D=0
- 2380 FOR A=0 TO Q(T)-1
- 2390 C=C+1
- 2400 A$=SPACE$(23)
- 2410 LSET A$=PZ(TBL(T,A))
- 2420 LOCATE C,25:PRINT USING "&";A$;
- 2430 PRINT USING PTR;VL(TBL(T,A))
- 2440 D=D+VL(TBL(T,A))
- 2450 NEXT A
- 2460 RETURN
- 2470 '
- 2480 FOR X=1 TO 2000:NEXT:RETURN
- 2490 DATA A1,B1,C1,D1,E1,A2,B2,C2,D2,E2,A3,B3,C3,D3,E3,A4,B4,C4,D4,E4
- 2500 DATA A5,B5,C5,D5,E5,A6,B6,C6,D6,E6,A7,B7,C7,D7,E7,A8,B8,C8,D8,E8
- 2520 DATA " COLOR TV ",650
- 2530 DATA " WINNABAGO ",13540
- 2540 DATA " SWISS WATCH ",250
- 2550 DATA " $5000 CASH ",5000
- 2560 DATA " $1 CASH ",1
- 2570 DATA " IBM P.C. ",2300
- 2580 DATA " IBM SOFTWARE ",49.95
- 2590 DATA "TRIP TO MEXICO",3000
- 2600 DATA "TRIP TO JAPAN",6000
- 2610 DATA " MINK COAT ",2300
- 2620 DATA "10 SPEED BIKE",135
- 2630 DATA "BOX OF BANANAS",5
- 2640 DATA " SPEED BOAT ",14000
- 2650 DATA " NEW TIRES ",150
- 2660 DATA " DISNEY TRIP ",3000
- 2670 DATA " SNOWMOBILE ",3200
- 2680 DATA "MINOLTA CAMERA",550
- 2690 DATA " BETAMAX ",1150
- 2700 DATA "SEWING MACHINE",250
- 2710 DATA " BRASS BED ",800
- 2720 DATA " JACUZZI SPA ",4300
- 2730 DATA " DISHWASHER ",320
- 2740 DATA " WASHER ",340
- 2750 DATA " DRYER ",320
- 2760 DATA " TAKE ONE ",-1
- 2770 DATA " LOSE ONE ",-2
- 2780 DATA " WILD CARD ",-3
- 2790 DATA " B&W T-V ",95
- 2800 DATA " VOLKSWAGEN ",5500
- 2810 DATA " APPLE CIDER ",3.98
- 2820 DATA " JUG OF MILK ",2.05
- 2830 DATA " LAWN MOWER ",230
- 2840 DATA " $500 CASH ",500
- 2850 DATA " DISK DRIVE ",350
- 2860 DATA "ENCYCLOPEDIAS ",650
- 2870 DATA " USED CAR ",20
- 2880 DATA " TOUPEE ",29
- 2890 DATA " BLOND WIG ",50
- 2900 DATA "CASSETTE TAPE",65
- 2910 DATA " STEREO ",1000
- 2920 DATA " TURKEY FARM ",1200
- 2930 DATA " GOLD RING ",300
- 2940 DATA " DIAMOND RING ",2300
- 2950 DATA " TIRED OVEN ",25
- 2960 DATA " PATIO SET ",490
- 2970 DATA " BEDROOM SET ",900
- 2980 DATA " SAIL BOAT ",6000
- 2990 DATA " BRICK HOME ",55000
- 3000 DATA " MOBILE HOME ",21000
- 3010 DATA "SHRIMP DINNER",25
- 3020 DATA " SURF BOARD ",250
- 3030 DATA " GOLF CLUBS ",550
- 3040 DATA "SWIMMING POOL",10000
- 3050 DATA " BRIEF CASE ",65
- 3060 DATA " NEW WARDROBE ",800
- 3070 DATA " SILK SHEETS ",125
- 3080 DATA " WATER BED ",450
- 3090 DATA " WATER SKIS ",120
- 3100 DATA "OUNCE OF GOLD",500
- 3110 DATA " BAR OF SOAP ",.25
- 3120 DATA " PET SQURRIEL ",75
- 3130 DATA " OCEAN CRUISE ",5400
- 3140 DATA " ROLEX CAMERA ",90
- 3150 DATA "SNORKEL & FINS",65
- 3160 DATA "LEATHER WALLET",10
- 3170 DATA "MX-80 PRINTER",550
- 3180 DATA "BYTE MAGAZINE",3
- 3190 DATA " MOTOR CYCLE ",3000
- 3200 DATA " MINI BIKE ",150
- 3210 DATA " MOPED ",450
- 3220 DATA " SILVER BOWL ",250
- 3230 DATA " TV DINNER ",1
- 3240 DATA " FROZEN PIZZA ",2
- 3250 DATA " AM-FM RADIO ",25
- 3260 DATA " CB-RADIO ",140
- 3270 DATA " TAMPA NUGGET ",.75
- 3280 DATA " BED LAMP ",15
- 3290 DATA " 6 PACK/COORS ",3.15
- 3300 DATA " SWING SET ",230
- 3310 DATA " SKILL SAW ",55
- 3320 LOCATE 22,3:PRINT PL(T)", For ";:PRINT USING PTR;D;:PRINT" In Prizes, Guess My Secret Number <10 to 99>";
- 3330 GOSUB 3380
- 3340 IF GS=SC THEN PRINT"Congradulations "PL(T)" You WIN !!!":FLAG=2:FOR X=1 TO 5:SOUND 500,1:SOUND 200,1:SOUND 100,2:NEXT
- 3350 IF GS<SC THEN PRINT" Sorry, Too Low. But Still Your Turn.":SOUND 37,15
- 3360 IF GS>SC THEN PRINT" Sorry, Too High. But Still Your Turn.":SOUND 2000,15
- 3370 GOSUB 1280:GOSUB 1850:RETURN
- 3380 IF INKEY$<>"" THEN 3380
- 3390 P1=""
- 3400 P=INKEY$:IF P=CHR$(13) THEN 3400
- 3410 IF P=CHR$(8) THEN 3470
- 3420 IF LEN(P)>1 THEN IF RIGHT$(P,1)=CHR$(75) THEN 3450 ELSE 3400
- 3430 IF P<"a" OR P>"z" THEN 3450
- 3440 P=CHR$(ASC(P)-32)
- 3450 P1=P1+P:PRINT P;:IF LEN(P1)<2 THEN 3400
- 3460 GS=VAL(P1):GOTO 3490
- 3470 IF LEN(P1)=0 THEN 3400
- 3480 PRINT CHR$(29)CHR$(32)CHR$(29);:P1=LEFT$(P1,LEN(P1)-1):GOTO 3400
- 3490 LOCATE 23,20,0
- 3500 RETURN
- 3510 Z1=""
- 3520 LOCATE 23,30:PRINT"Enter Choice Number ";
- 3530 IF INKEY$<>"" THEN 3530
- 3540 Z=INKEY$:IF Z="" THEN 3540
- 3550 IF Z=CHR$(13) THEN 3540
- 3560 IF Z=CHR$(8) THEN 3540
- 3570 PRINT Z;:RETURN
- 3580 KEY(10) OFF:XLIN=CSRLIN:XPOS=POS(0)
- 3590 LOCATE 25,22:COLOR 15,0:PRINT"Do You Wish To Leave This Game? <Y/N>";:COLOR 3,0
- 3600 Z=INKEY$:IF Z="" THEN 3600
- 3610 IF Z="Y" OR Z="y" THEN END
- 3620 IF Z="N" OR Z="n" THEN 3640
- 3630 GOTO 3600
- 3640 LOCATE 25,1:PRINT SPC(78);
- 3650 LOCATE 25,25:COLOR 0,7:PRINT" Strike <F10> To Leave This Game ";:COLOR 3,0
- 3660 LOCATE XLIN,XPOS:KEY(10) ON:RETURN
- 3670 ZH=""
- 3680 DEF SEG:POKE 106,0:IF INKEY$<>"" THEN 3680
- 3690 ZI=INKEY$:IF ZI="" THEN 3690
- 3700 IF ZI=CHR$(13) THEN ZA=SPACE$(8):LSET ZA=ZH:RETURN
- 3710 IF ZI=CHR$(8) THEN 3770
- 3720 IF LEN(ZI)>1 THEN IF RIGHT$(ZI,1)=CHR$(75) THEN 3770 ELSE 3680
- 3730 IF LEN(ZH)>7 THEN 3690
- 3740 IF ZI<"a" OR ZI>"z" THEN 3760
- 3750 ZI=CHR$(ASC(ZI)-32)
- 3760 ZH=ZH+ZI:PRINT ZI;:GOTO 3690
- 3770 IF LEN(ZH)<1 THEN 3690
- 3780 PRINT CHR$(29)" "CHR$(29);:ZH=LEFT$(ZH,LEN(ZH)-1):GOTO 3690
-